﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using app_inventario.AccesoDatos;

namespace app_inventario.LogicaNegocio
{
    public static class admProducto
    {
        //Metodo para buscar los productos en la base de datos
        public static Producto buscaProducto(string busqueda) 
        {
            InventarioEntities bd = new InventarioEntities(); 
            return bd.Producto.SingleOrDefault(p => p.Nombre == busqueda);
        }

        public static string eliminaProducto(string nombreProducto)
        {
            InventarioEntities bd = new InventarioEntities();
            Producto eliminarPro = bd.Producto.SingleOrDefault(p=> p.Nombre == nombreProducto);
            bd.Producto.Remove(eliminarPro);
            bd.SaveChanges();
            string mensaje = "Producto Eliminado";
            return mensaje;
        }

        public static string ingresarProducto(string nombre, int categoria, int marca, int precio, int cantidad)
        {
            InventarioEntities bd = new InventarioEntities();
            var product = buscaProducto(nombre);
            if (product != null)
            {
                string mensaje = "El producto ya existe";
                return mensaje;
            }
            else
            {
                Producto nuevoproducto = new Producto
                {
                    Nombre = nombre,
                    ID_categoria = categoria,
                    ID_marca = marca,
                    Precio = precio,
                    Cantidad = cantidad
                };

                bd.Producto.Add(nuevoproducto);
                bd.SaveChanges();
                string mensaje = "Producto Ingresado";
                return mensaje;
            }
        }

        public static string actualizaProducto(string nombre, int precio, int cantidad)
        {
            InventarioEntities bd = new InventarioEntities();
            Producto actualizaPro = bd.Producto.SingleOrDefault(u => u.Nombre == nombre);

            
            actualizaPro.Nombre = nombre;
            actualizaPro.Precio = precio;
            actualizaPro.Cantidad = cantidad;
            bd.SaveChanges();
            string mensaje = "Producto actualizado";
            return mensaje;
        }

        public static Categoria buscaCategoria(string busqueda)
        {
            InventarioEntities bd = new InventarioEntities();
            return bd.Categoria.SingleOrDefault(bc => bc.Descripcion == busqueda);
        }

        public static Marca buscarMarca(string busqueda)
        {
            InventarioEntities bd = new InventarioEntities();
            return bd.Marca.SingleOrDefault(bm => bm.Descripcion == busqueda);
        }

        public static void ingresaMarca(string marca)
        {
            InventarioEntities bd = new InventarioEntities();
            
            Marca nuevamarca = new Marca
            {
                Descripcion = marca
            };

            bd.Marca.Add(nuevamarca);
            bd.SaveChanges();
        }
      
    }
}
